/*
 * listaDefiniciones.c
 *
 *  Created on: 01/09/2011
 *      Author: alumnos
 */

#include <string.h>
#include "listaDefiniciones.h"

void ListaDef_init(ListaDefiniciones* l) {
	l->cantDefiniciones = 0;
	for (int i = 0; i < MAX_DEFINES; i++) {
		l->defines[i].nombre[0] = 0;
		l->defines[i].valor[0] = 0;
	}
}

void ListaDef_agregarDef(ListaDefiniciones* l, char* nombre, char* valor) {
	strcpy(l->defines[l->cantDefiniciones].nombre, nombre);
	strcpy(l->defines[l->cantDefiniciones].valor, valor);
	l->cantDefiniciones++;
}

/* Busca la definicion especificada. Retorna -1 si no se encontro la
 * definicion*/
int ListaDef_buscarDef(ListaDefiniciones* l, char* nombre) {
	int encontrado = 0;
	int i = 0;
	while ((i < (l->cantDefiniciones)) && !(encontrado)) {
		if (strcmp(l->defines[i].nombre, nombre) == 0)
			encontrado = 1;
		else
			i++;
	}
	if (i == (l->cantDefiniciones))
		i = -1;
	return i;
}

char* ListaDef_getDef(ListaDefiniciones* l, int pos) {
	return (l->defines[pos].valor);
}

